package com.jl.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jl.commons.result.PageDataInfo;
import com.jl.model.Component;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 零件表 服务类
 * </p>
 *
 * @author JiangJian
 * @since 2019-03-06
 */
public interface IComponentService extends IService<Component> {

    /**
     * 分页查询零件信息数据
     * @param pageDataInfo 分页配置信息
     * @param qw 筛选条件
     * @return
     */
    void selectComponentDataGrid(PageDataInfo<Map<String,Object>> pageDataInfo, QueryWrapper<Component> qw);

    /**
     * 通过部位id获得所有配件
     * 获得某设备类型的所有配件信息
     * @param pageDataInfo
     * @param modelId
     */
    void selectComponentDataGridByModelId(PageDataInfo<Map<String,Object>> pageDataInfo, Long modelId);

    /**
     * 批量删除所有的配件信息
     * 同时删除 part_component 、 device_component 中的数据
     * @param ids
     * @return
     */
    boolean deleteComponentByIds(List<Long> ids);

    /**
     * 通过id列表进行查找
     * @param ids
     * @return
     */
    List<Component> selectComponentByIds(List<Long> ids);
    /**
     * 查找设备编号是否被占用
     * @param number
     * @return
     */
    boolean isComponentNumberUsed(String number);

    boolean isComponentNumberCanUse(String number,Long componentId);
    /**
     * 查找设备名称是否被占用
     * @param name
     * @return
     */
    boolean isComponentNameUsed(String name);

    boolean isComponentNameCanUse(String name,Long componentId);

}
